1. Field of the Invention
The invention relates to computer input/output channels, and more particularly to methods and apparatus for conducting transactions on a high performance input/output channel.
2. Description of Related Art
High performance computer systems including the MP-1.TM. and MP-2.TM. massively parallel processors available from Maspar Computer System, Inc., Sunnyvale, Calif., typically require high speed and high capacity data transactions for efficient operation. One approach is to use input/output ("I/O") devices that support high speed, high capacity data transactions. An I/O device can achieve high speed by using high clock rates and by providing wide parallel buses, and can achieve high capacity by enlarging its physical size. Unfortunately, high performance computer systems typically impose limitations on clock rates and the parallel bus width, and on the size of the I/O device boards they will accept. I/O device boards exceeding these limitations cannot conveniently be used.
Another approach is to place a number of relatively small capacity I/O devices of a particular type on one data bus, and to coordinate their operation so that a single high capacity device is emulated. Specifying a data transfer involving multiple I/O devices typically requires many control bus operations to achieve the necessary synchronization or serialization. Control can be accomplished with one or more I/O processors ("IOP") that initiate and monitor I/O data transfers. Unfortunately, the use of frequent control bus operations tends to reduce the data transfer rate.
High performance computer systems also typically require a variety of I/O device types, each of which may have its own IOP. If permitted to operate independently, these IOPs will cause interfering transactions to occur on the data bus. Several techniques have been developed to allow multiple I/O processors to make I/O requests independent of one another. For example, read-modify-write techniques and a fully interlocked series of write operations are sometimes used, but these techniques sacrifice overall data rate since they involve holding the shared resource until a single I/O processor is through generating and servicing the request. Another approach involves the use of dedicated control busses for each individual I/O processor, which has the disadvantage of requiring an unwieldy large number of pins.
Hence, a need arises for a cost-effective high performance I/O system that provides high capacity and high bandwidth with relatively little system overhead.